Different communications media have different bandwidth capability. A signal needing to be sent may exceed the bandwidth of a particular medium. One method to reduce the bandwidth is to encode the signal. However, the signal may need to be sent through various media having different bandwidth capability. Thus, encoding the signal at a single bit rate may pose problems. For example, encoding a video sequence to have the highest quality for a given digital subscriber line (xDSL), may have too high a bit rate for transmission through a 56K modem line.
Numerous approaches to doing multi-rate encoding have been tried. One obvious approach is to encode the data, such as a video sequence, at multiple different bit rates by using an encoder and running the video sequence through the encoder as many times as there are bit streams to generate, each time adjusting the encoder parameters so that the output data has the proper bit rate and/or quality level. Another obvious, brute force approach, is to have a group of encoders in parallel, each running at different bit rates as is required.